//  直接定义user子模块
// pinia 中去掉了 mutations 和modules

// pinia中的actions 既可以定义同步方法 也可以定义异步方法
// modules 没有了, pinia中使用 defineStore定义的仓库就是一个子模块仓库

import { defineStore } from 'pinia';
// defineStore 参数1: 名字必须是唯一的, 因为不同的仓库根据该id 区分不同的仓库
// 优点类似于vuex中子模块中的命名空间
// defineStore 参数2: 就是仓库的配置项
// defineStore 的返回值 还是一个函数useUserStore, 使用时需调用
export const useUserStore = defineStore('user', {
    state: () => { // 定义仓库数据的选项
        return {
            count: 100  // 这就是仓库数据
        }
    },
    getters: { // 定义仓库中的计算属性
        doubleCount: (state) => { //参数state就是数据state 对象
            return state.count * 2
        }
    },
    actions: { // 相当于定义修改state 数据的方法
        addCount(m) {
            // console.log('this', this); // this=== useUserStore()
            setTimeout(() => {
                this.count += m
            }, 2000)

        }
    }
})
